<!-- HTML header for doxygen 1.8.18-->
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <meta name="generator" content="Doxygen 1.8.16" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>LEAF: tFeedbackLeveler</title>
    <link href="tabs.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="dynsections.js"></script>
    <script type="text/javascript" src="../js/iframeResizer.contentWindow.min.js"></script>
    <!-- <script src="/js/template.js"></script> -->
     <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script> 
    <link href="doxygen.css" rel="stylesheet" type="text/css" />
    <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
    <!-- <link rel="stylesheet" href="/css/tachyons.css" type="text/css" /> -->
</head>
<body class="bg-washed-green black-70 ph0 sans-serif" onload="iframeResizePipe()">
    <div>
        <!-- do not remove this div, it is closed by doxygen! -->
        <div id="titlearea">
            <table cellspacing="0" cellpadding="0">
                <tbody>
                    <tr>
                    </tr>
                </tbody>
            </table>
        </div>
        <!-- end header part -->
    </div>
</body>
</html><!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">tFeedbackLeveler<div class="ingroups"><a class="el" href="group__dynamics.html">Dynamics</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>An auto VCA that you put into a feedback circuit to make it stay at the same level.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad47edde6cb4edcbb2c7b987169fa3894"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894">tFeedbackLeveler_init</a> (tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, <a class="el" href="struct_l_e_a_f.html">LEAF</a> *const leaf)</td></tr>
<tr class="memdesc:gad47edde6cb4edcbb2c7b987169fa3894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tFeedbackLeveler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance.  <a href="group__tfeedbackleveler.html#gad47edde6cb4edcbb2c7b987169fa3894">More...</a><br /></td></tr>
<tr class="separator:gad47edde6cb4edcbb2c7b987169fa3894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae7b25faea2961dcf8fc010073f27da01"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01">tFeedbackLeveler_initToPool</a> (tFeedbackLeveler *const, float targetLevel, float factor, float strength, int mode, tMempool *const)</td></tr>
<tr class="memdesc:gae7b25faea2961dcf8fc010073f27da01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a tFeedbackLeveler to a specified mempool.  <a href="group__tfeedbackleveler.html#gae7b25faea2961dcf8fc010073f27da01">More...</a><br /></td></tr>
<tr class="separator:gae7b25faea2961dcf8fc010073f27da01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga821078d9cde9ae2f2c4e78ff3c3b78e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6">tFeedbackLeveler_free</a> (tFeedbackLeveler *const)</td></tr>
<tr class="memdesc:ga821078d9cde9ae2f2c4e78ff3c3b78e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a tFeedbackLeveler from its mempool.  <a href="group__tfeedbackleveler.html#ga821078d9cde9ae2f2c4e78ff3c3b78e6">More...</a><br /></td></tr>
<tr class="separator:ga821078d9cde9ae2f2c4e78ff3c3b78e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c882adb387363a1aaf9ab89856f22a2"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#ga5c882adb387363a1aaf9ab89856f22a2">tFeedbackLeveler_tick</a> (tFeedbackLeveler *const, float input)</td></tr>
<tr class="separator:ga5c882adb387363a1aaf9ab89856f22a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab451b93e5c3676fae53e44d19f8d949b"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gab451b93e5c3676fae53e44d19f8d949b">tFeedbackLeveler_sample</a> (tFeedbackLeveler *const)</td></tr>
<tr class="separator:gab451b93e5c3676fae53e44d19f8d949b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4668b5d237be33237f8e4bf0870301f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#ga4668b5d237be33237f8e4bf0870301f7">tFeedbackLeveler_setTargetLevel</a> (tFeedbackLeveler *const, float TargetLevel)</td></tr>
<tr class="separator:ga4668b5d237be33237f8e4bf0870301f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1a82f7a3dbd65e3310a7d345b2e4243"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gad1a82f7a3dbd65e3310a7d345b2e4243">tFeedbackLeveler_setFactor</a> (tFeedbackLeveler *const, float factor)</td></tr>
<tr class="separator:gad1a82f7a3dbd65e3310a7d345b2e4243"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga08681640f1442f016e6bcf4d05542aa9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#ga08681640f1442f016e6bcf4d05542aa9">tFeedbackLeveler_setMode</a> (tFeedbackLeveler *const, int mode)</td></tr>
<tr class="separator:ga08681640f1442f016e6bcf4d05542aa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad7bf90dd14e80f6683859aeac2e62e80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__tfeedbackleveler.html#gad7bf90dd14e80f6683859aeac2e62e80">tFeedbackLeveler_setStrength</a> (tFeedbackLeveler *const, float strength)</td></tr>
<tr class="separator:gad7bf90dd14e80f6683859aeac2e62e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>An auto VCA that you put into a feedback circuit to make it stay at the same level. </p>
<p>An auto VCA that you put into a feedback circuit to make it stay at the same level. It can enforce level bidirectionally (amplifying and attenuating as needed) or just attenutating. The former option allows for infinite sustain strings, for example, while the latter option allows for decaying strings, which can never exceed a specific level. </p>
<h2 class="groupheader">Function Documentation</h2>
<a id="gad47edde6cb4edcbb2c7b987169fa3894"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad47edde6cb4edcbb2c7b987169fa3894">&#9670;&nbsp;</a></span>tFeedbackLeveler_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tFeedbackLeveler_init </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>targetLevel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>factor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>strength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_l_e_a_f.html">LEAF</a> *const&#160;</td>
          <td class="paramname"><em>leaf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a tFeedbackLeveler to the default mempool of a <a class="el" href="struct_l_e_a_f.html" title="Struct for an instance of LEAF.">LEAF</a> instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the tFeedbackLeveler to initialize. </td></tr>
    <tr><td class="paramname">leaf</td><td>A pointer to the leaf instance. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gae7b25faea2961dcf8fc010073f27da01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae7b25faea2961dcf8fc010073f27da01">&#9670;&nbsp;</a></span>tFeedbackLeveler_initToPool()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tFeedbackLeveler_initToPool </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>targetLevel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>factor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>strength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">tMempool * const&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a tFeedbackLeveler to a specified mempool. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the tFeedbackLeveler to initialize. </td></tr>
    <tr><td class="paramname">mempool</td><td>A pointer to the tMempool to use. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga821078d9cde9ae2f2c4e78ff3c3b78e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga821078d9cde9ae2f2c4e78ff3c3b78e6">&#9670;&nbsp;</a></span>tFeedbackLeveler_free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tFeedbackLeveler_free </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a tFeedbackLeveler from its mempool. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the tFeedbackLeveler to free. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga5c882adb387363a1aaf9ab89856f22a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5c882adb387363a1aaf9ab89856f22a2">&#9670;&nbsp;</a></span>tFeedbackLeveler_tick()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float tFeedbackLeveler_tick </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>input</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gab451b93e5c3676fae53e44d19f8d949b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab451b93e5c3676fae53e44d19f8d949b">&#9670;&nbsp;</a></span>tFeedbackLeveler_sample()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float tFeedbackLeveler_sample </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga4668b5d237be33237f8e4bf0870301f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4668b5d237be33237f8e4bf0870301f7">&#9670;&nbsp;</a></span>tFeedbackLeveler_setTargetLevel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tFeedbackLeveler_setTargetLevel </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>TargetLevel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gad1a82f7a3dbd65e3310a7d345b2e4243"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad1a82f7a3dbd65e3310a7d345b2e4243">&#9670;&nbsp;</a></span>tFeedbackLeveler_setFactor()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tFeedbackLeveler_setFactor </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>factor</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga08681640f1442f016e6bcf4d05542aa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga08681640f1442f016e6bcf4d05542aa9">&#9670;&nbsp;</a></span>tFeedbackLeveler_setMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tFeedbackLeveler_setMode </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. </td></tr>
    <tr><td class="paramname">mode</td><td>0 for upwards limiting only, 1 for biderctional limiting </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gad7bf90dd14e80f6683859aeac2e62e80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad7bf90dd14e80f6683859aeac2e62e80">&#9670;&nbsp;</a></span>tFeedbackLeveler_setStrength()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void tFeedbackLeveler_setStrength </td>
          <td>(</td>
          <td class="paramtype">tFeedbackLeveler * const&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>strength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leveler</td><td>A pointer to the relevant tFeedbackLeveler. ￼￼￼ </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.18-->
<!-- start footer part -->
</body>
</html>
